1
Memetakan Perangkat Keras ke Perangkat Lunak: Versi Kemampuan Komputasi
AI021Lesson 5
00:00

Kemampuan Komputasi (CC) berfungsi sebagai jembatan versi antara arsitektur virtual (PTX) dan arsitektur nyata (SASS/Binary). Pengembang menggunakan nvcc untuk menargetkan platform tertentu, mulai dari platform desktop/server hingga platform terintegrasi, melalui model sistem operasi seperti Linux 64-bit (LP64) atau Windows 64-bit (LLP64).

1. Arsitektur Virtual vs. Nyata

Toolkit CUDA mendukung arsitektur GPU dari dua versi utama terakhir, yang dirujuk dalam Tabel 29: Dukungan Fitur di Berbagai Kemampuan Komputasi (7.5 hingga 12.x). Kami menentukan pemetaan menggunakan flag seperti: nvcc --generate-code arch=compute_80,code=sm_90 prog.cu. Untuk target masa depan, flag seperti nvcc -arch=sm_100 atau varian khusus seperti nvcc -arch=sm_100a digunakan.

2. Hierarki Makro

Kompile menggunakan __CUDA_ARCH__ untuk melakukan percabangan kode. Makro __CUDA_ARCH__ hanya didefinisikan dalam kode perangkat (misalnya, __device__, __global__). Kontrol yang lebih halus disediakan oleh __CUDA_ARCH_SPECIFIC__ dan __CUDA_ARCH_FAMILY_SPECIFIC__. Fitur tertentu, seperti Memori Bersama Terdistribusi atau spesifik muatan NaN, membutuhkan Kemampuan Komputasi 9.0+ atau Kemampuan Komputasi 10.0 dan seterusnya.

3. Batas & Kendala Numerik

Presisi bervariasi sesuai CC; misalnya, penanganan subnormal memastikan $2^{-16382} \approx 3.36 \cdot 10^{-4932}$. Batasan perangkat keras seperti CUDA_DEVICE_MAX_COPY_CONNECTIONS=16 atau arah PTX .maxnreg ditegakkan secara ketat berdasarkan versi CC tujuan.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>